home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / comm / thor / thor24arexx.lha / HTMLThor.thor < prev    next >
Text File  |  1996-11-11  |  6KB  |  190 lines

  1. /*
  2. **   Filename: HTMLThor.thor
  3. **
  4. **   $VER: v1.31 (09.22.96)
  5. **
  6. **   Author:  Troy E. Bouchard
  7. **
  8. **   EMail:   tbouchar@ptialaska.net
  9. **   Webpage: http://www.ptialaska.net/~tbouchar
  10. **
  11. */
  12.  
  13. /* Find our Thor Port and number! */
  14. p = ' '||Address() || ' ' || show('P',,)
  15.     ThorPort = pos(' THOR.',p)
  16. if ThorPort > 0 then ThorPort = word(substr(p,ThorPort+1),1)
  17. else
  18. do
  19.    say "Can't seem to find the Thor port!"
  20.    exit 10
  21. End
  22.  
  23. /* Load the BBSRead library up! */
  24. if ~show('p', 'BBSREAD') then
  25. do
  26.    address command
  27.    "run >nil: `GetEnv THOR/THORPath`bin/LoadBBSRead"
  28.    "WaitForPort BBSREAD"
  29. End
  30.  
  31. /* change these to match your system! */
  32. TB_WWW       = 'A HREF="digest/'
  33. TB_EMail   = 'A HREF="mailto:'
  34. TB_MSGPATH = 'T:'
  35.  
  36. EXT = '.html'  /* change this to .htm if you need to. */
  37.  
  38. /* aint ARexx just great? */
  39. TB_WDAYS = 'Monday Tuesday Wednesday Thursday Friday Saturday Sunday'
  40. TB_MONTH = 'January February March April May June July August September October November December'
  41.  
  42. options results
  43.  
  44. Call GetPages
  45.  
  46. Exit
  47.  
  48. GetPages:
  49.    Address BBSREAD
  50.    'GETBBSLIST stem "'BBSLIST'"'
  51.    if(rc ~=0) then
  52.    do
  53.       Address(ThorPort)
  54.       'REQUESTNOTIFY TEXT "'BBSREAD.LASTERROR'" BT "_OK"'
  55.       exit
  56.    End
  57.  
  58.    Address(ThorPort)
  59.    'REQUESTLIST instem "'BBSLIST'" outstem "'TB_SYSTEM'" title "Selection:" DRAGSELECT MULTISELECT SIZEGADGET'
  60.    if(rc ~= 0) then exit
  61.    do i=1 to TB_SYSTEM.COUNT
  62.       Address BBSREAD
  63.       'GETCONFLIST "'TB_SYSTEM.i'" CONFLIST'
  64.       if(rc ~= 0) then
  65.       do
  66.      Address(ThorPort)
  67.      'REQUESTNOTIFY TEXT "'BBSREAD.LASTERROR'" BT "_OK"'
  68.      exit
  69.       End
  70.  
  71.       Address(ThorPort)
  72.       'REQUESTLIST instem "'CONFLIST'" title "Select conference on ' || TB_SYSTEM.i || ":" ||'" SIZEGADGET'
  73.       if(rc ~= 0) then TB_CONFNAME = ""
  74.       else TB_CONFNAME = result
  75.  
  76.       MyConf = Translate(TB_CONFNAME,," ","_")
  77.  
  78.       call open(out, TB_MSGPATH||MyConf||EXT, w)
  79.       call writeln(out, "<HTML><HEAD><TITLE>"MyConf||"</TITLE></HEAD>")
  80.       call writeln(out, "<BODY><HR><CENTER><H2>"MyConf"</H2><HR>")
  81.       call close(out)
  82.  
  83.       Address BBSREAD
  84.       'GETCONFDATA BBSName "'TB_SYSTEM.i'" ConfName "'TB_CONFNAME'" Stem CDATA'
  85.       if(rc ~= 0) then
  86.       do
  87.      Address(ThorPort)
  88.      'REQUESTNOTIFY TEXT "'BBSREAD.LASTERROR'" BT "_OK"'
  89.      exit
  90.       End
  91.  
  92.    Address(ThorPort)
  93.    'OPENPROGRESS TITLE " HTMLThor v1.31" PT "Getting Pages..." AT "_Abort" PCW 30'
  94.    if(rc ~= 0) then
  95.    do
  96.       'CLOSEPROGRESS REQ' win
  97.       'REQUESTNOTIFY TEXT "'THOR.LASTERROR'" BT "_OK"'
  98.       exit
  99.    end
  100.  
  101.    win = result
  102.    do j = CDATA.FIRSTMSG to CDATA.LASTMSG
  103.       Address(ThorPort)
  104.       msgtext = 'Saving Page 'j' of 'CDATA.LASTMSG' to 'TB_MSGPATH||MyConf||j||EXT
  105.       'UPDATEPROGRESS REQ "'win'" TOTAL "'CDATA.LASTMSG'" CURRENT "'j'" PT "'msgtext'"'
  106.       if(rc ~= 0) then do
  107.     'CLOSEPROGRESS REQ' win
  108.     win=0
  109.     leave
  110.       end
  111.  
  112.       Drop HeaderInfo.
  113.       Drop TextInfo.
  114.  
  115.       Address BBSREAD
  116.       'READBRMESSAGE "'TB_SYSTEM.i'" "'TB_CONFNAME'" MSGNR "'j'" TextStem "'TextInfo'" HeadStem "'HeaderInfo'" DataStem "'MsgData'"'
  117.       if(rc ~= 0) then
  118.       do
  119.      Address(ThorPort)
  120.      'CLOSEPROGRESS REQ' win
  121.      'REQUESTNOTIFY TEXT "'BBSREAD.LASTERROR'" BT "_OK"'
  122.      Exit
  123.       end
  124.  
  125.       if ~bittst(MsgData.FLAGS, 5) then do
  126.      'AMIGA2DATE "'HeaderInfo.CREATIONDATE'" Stem "'Time'"'
  127.      if(rc ~= 0) then
  128.      do
  129.         Address(ThorPort)
  130.         'CLOSEPROGRESS REQ' win
  131.         'REQUESTNOTIFY TEXT "'BBSREAD.LASTERROR'" BT "_OK"'
  132.         Exit
  133.      end
  134.  
  135.      if(Time.WDAY == '0') then
  136.         WKDays = 'Sunday'
  137.      else
  138.         WKDays = word(TB_WDAYS, Time.WDAY)
  139.         MODays = word(TB_MONTH, Time.MONTH)
  140.  
  141.      if symbol('HeaderInfo.FROMADDR') = "VAR" then
  142.         Addr = '<'TB_EMail || value('HeaderInfo.FROMADDR') || '">'
  143.  
  144.      if symbol('HeaderInfo.FROMNAME') = "VAR" then
  145.         Name = value('HeaderInfo.FROMNAME') || '</A>'
  146.  
  147.      if symbol('HeaderInfo.SUBJECT') = "VAR" then
  148.         Subj = value('HeaderInfo.SUBJECT')
  149.  
  150.      call open(out, TB_MSGPATH||MyConf||EXT, a)
  151.      call writeln(out,'<B>From:</B>'Addr||Name'<BR><B>Subject:</B><'TB_WWW||MyConf||j||EXT'">'Subj||'.'||'</A><P>')
  152.      call close(out)
  153.  
  154.      anterior=j-1
  155.      proxima=j+1
  156.      if anterior=0 then anterior=1
  157.  
  158.      call open(out, TB_MSGPATH || MyConf || j || EXT, w)
  159.      call writeln(out, '<HTML><HEAD><TITLE>'MyConf||' - 'Subj||'</TITLE></HEAD>')
  160.      call writeln(out, '<BODY><H2><B><CENTER>'MyConf||'</H2>')
  161.      call writeln(out, 'Message created on:<BR>'WKDays', 'MODays' 'Time.MDAY', 'Time.YEAR'</B>')
  162.      call writeln(out, '<HR><B>From:</B>'Addr||Name' ('HeaderInfo.FROMADDR')<BR><B>Subject:</B> 'Subj||'</CENTER>')
  163.      call writeln(out, '<HR><CENTER>|<A HREF="'MyConf||anterior||EXT'">Previous Message</A> | <A HREF="'MyConf||proxima||EXT'">Next Message</A> | </CENTER>')
  164.      call close(out)
  165.  
  166.      cnt = value('TextInfo.TEXT.COUNT')
  167.  
  168.      call open(out, TB_MSGPATH||MyConf||j||EXT, a)
  169.      call writeln(out, '<HR><H4>')
  170.  
  171.      do n = 1 to cnt
  172.         call writeln(out, value('TextInfo.TEXT.n')'<BR>')
  173.      end
  174.  
  175.      call writeln(out,'</H4><HR><CENTER> | <A HREF="'MyConf||anterior||EXT'">Previous Message</A> | <A HREF="'MyConf||proxima||EXT'">Next Message</A> | <HR>')
  176.      call writeln(out,'<B>Output created by HTMLThor v1.31<BR>')
  177.      call writeln(out,'Written by: Troy E. Bouchard, © 1996</CENTER></B>')
  178.      call writeln(out,"<HR></BODY></HTML>")
  179.      call close(out)
  180.       end
  181.    end
  182.       call open(out, TB_MSGPATH||MyConf||EXT, a)
  183.       call writeln(out,"</BODY></HTML></CENTER>")
  184.       call close(out)
  185.    end
  186.    Address(ThorPort)
  187.    'REQUESTNOTIFY TEXT "    We Are Done!\nHTML Files Copied!" BT "_Cool!"'
  188.    'CLOSEPROGRESS REQ' win
  189. Return
  190.